/**
  * 2.6 option 类型
  * Scala 为单个值提供了对象的包装器， 表示为那种可能存在也可能不存在
  * 的值。他只有两个有效的子类对象，一个是 Some，表示某个值，另外一个是
  * None，表示为空，通过 Option 的使用，避免了使用 null、空字符串等方式来
  * 表示缺少某个值的做法。
  */
val scores = Map("Alice" -> 1729, "Fred" -> 42)

//直接get会返回两个类型 一个是Some 一个是 None
scores.get("Alice") match {
  case Some(score) => println(score)
  case None => println("No score")
}

val alicesScore = scores.get("Alice")
if (alicesScore.isEmpty) { println("No score")} else println(alicesScore.get)

println(alicesScore.getOrElse("No score"))

println(scores.getOrElse("Alice", "No score"))

for (score <- scores.get("Alice")) println(score)

scores.get("Alice").foreach(println _)